<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //let 在前使用会报错
        // console.log(a)
        // let a 

        //let 暂时性死区,在let声明变量之前是不能被访问的
        // if (ture){
        //     tmp = 'abc'; 
        //     let tmp;
        // }

        //let重复声明时,控制台会报错
        // let obj = {}
        // let obj = {}

        //块级作用域,内层变量可能会覆盖外层变量
        // var date = new Date()

        // function f(){
        //     console.log(date);
        //     if (false){
        //         var date = 'hello'
        //     }
        // }

        // f()

        //let在块级作用域声明时会造成每一个块级作用域不互通，但是里层作用域可以访问到外层
        // {
        //     {
        //         let a = 1;
        //     }
        //     console.log(a)
        // }
        
        //里层作用域可以访问外层
        // {
        //     let a = 1;
        //     {

        //     }
        //     console.log(a)
        // }

        // let a = '全局' 
        // {
        //     let a = '全局'
        //     console.log(a);
        // }
        // console.log(a);

        // // const声明
        //     const a = 1
        //     a = 2 //只能读不能修改，一旦更改报错

        //const声明2
            // const obj = {}
            // //允许更改内部数据
            // obj.name = '曹操'

            // // 不能改变地址，改变后会报错
            // obj = {}




        

    </script>
</body>
</html>